Kotlin Collection 全方位解析攻略 : 精通原理及實戰,寫出流暢好維護的程式(iT邦幫忙鐵人賽系列書)

Kotlin Collection 全方位解析攻略 : 精通原理及實戰,寫出流暢好維護的程式(iT邦幫忙鐵人賽系列書)

作者: 范聖佑 盧韋伸 郭香宜 林采葶 審校
出版社: 博碩文化
出版在: 2022-06-30
ISBN-13: 9786263331136
ISBN-10: 6263331135
總頁數: 472 頁





內容描述


本書內容改編自第 12 屆 iT 邦幫忙鐵人賽
Software Development 組佳作網站系列文章
《新手也能懂的 Kotlin Collection 賞玩門道》
集合(Collection)是各程式語言裡常見的資料類別,在 Kotlin 裡共有 Array、List、Set 及 Map 四種,在標準函式庫裡提供一系列設計精妙的集合 API,若能好好運用,可以減少很多重複冗長的工作,對操作資料有很大的幫助。本書專為 Kotlin 開發者設計,透過技法、心法、實戰三部份,系統化的解釋 Kotlin 集合的原理、功能及應用,是一本 Kotlin 開發者桌上必備的工具書。

書籍特色
技法:
依不同目的及特性將 Kotlin 集合分類,綜覽超過 200 個方法,搭配範例程式碼及速查地圖,豐富讀者對操作技法的認識。

心法:
要掌握 Kotlin 集合,除了要精通語法外,也需通曉實作原理。書中透過閱讀標準函式庫的原始碼,陸續討論語法設計、命名邏輯及組合技等心法。

實戰:
只有理論是不夠的,唯有搭配實戰才能將知識落實在日常任務裡。透過情境解題,綜合運用集合的功能來面對各種資料處理情境,活用從心法與技法學到的知識。

專業推薦
作者以《技法》、《心法》以及《實戰》三大篇幅來帶領讀者瞭解 Kotlin Collections 的 What、Why、以及 How,協助 Kotlin 開發人員融會貫通,信手捻來高表達力且高品質的程式碼。
── 上官林傑(Eric)
Google 全球開發者計劃台灣香港及南亞區經理

無論你是新手或是老手,Kotlin 都值得一學,而 Collection 是日常處理各式各樣 Flow 的重要角色。本書透過合理的難易度安排,除了能像工具書使用外,也用更高的角度去觀察 Kotlin Collections 站在 Java Collections 巨人肩上的設計巧思。
── 黃健旻(Vincent)
Google 官方認證 Kotlin 技術專家

本書從不同角度,深入剖析 Kotlin Collection 的各種細節,處處都值得參考及研究。讀者在閱讀後,不只能學到 Collection 的用法,還可以感受到 Kotlin 設計的思考脈絡,以另一種視角享受寫程式的樂趣。
── 趙家笙(Recca)
Taiwan Kotlin User Group 主辦人


目錄大綱


Chapter 01 技法篇
1-1 集合四大物件
1-1-1 Array
1-1-2 List
1-1-3 Set
1-1-4 Map
1-1-5 四大物件綜合比較
1-2 探索集合方法的前置工作
1-2-1 建立練習專案
1-2-2 完成首次提交
1-2-3 推送程式碼到 GitHub
1-2-4 調整 Gradle 相關設定
1-2-5 建立套件
1-2-6 使用 Kotlin Worksheet
1-2-7 使用本書範例
1-2-8 錯誤排除
1-3 建立集合的方法
1-3-1 總覽圖
1-3-2 Of 系列函式
1-3-3 Empty 系列函式
1-3-4 Builder 系列函式
1-3-5 Instantiation 系列方法
1-3-6 Copy 系列方法
1-3-7 回顧
1-4 從集合取值的方法
1-4-1 總覽圖
1-4-2 Index 取單值系列方法
1-4-3 Get 取單值系列方法
1-4-3 Element 取單值系列方法
1-4-4 First 取單值系列方法
1-4-5 Last 取單值系列方法
1-4-6 Random 取單值系列方法
1-4-7 Single 取單值系列方法
1-4-8 Find 取單值系列方法
1-4-9 Search 取單值系列方法
1-4-10 Take 取區段系列方法
1-4-11 Drop 取區段系列方法
1-4-12 Slice 取區段系列方法
1-4-13 Chunk 取區段方法
1-4-14 Window 取區段方法
1-4-15 Zip 取區段方法
1-4-16 回顧
1-5 排序集合的方法
1-5-1 總覽圖
1-5-2 Sort 系列方法
1-5-3 Reverse 系列方法
1-5-4 Shuffle 系列方法
1-5-5 回顧
1-6 檢查集合的方法
1-6-1 總覽圖
1-6-2 Is 系列方法
1-6-3 Condition 系列方法
1-6-4 Contains 系列方法
1-6-5 回顧
1-7 操作集合的方法
1-7-1 總覽圖
1-7-2 Add 系列方法
1-7-3 Remove 系列方法
1-7-4 Update 系列方法
1-7-5 Order 系列方法
1-7-6 回顧
1-8 集合分群的方法
1-8-1 總覽圖
1-8-2 Group 系列方法
1-8-3 Partition 系列方法
1-8-4 Distinct 系列方法
1-8-5 Filter 系列方法
1-8-6 回顧
1-9 轉換集合的方法
1-9-1 總覽圖
1-9-2 forEach 系列方法
1-9-3 Map 系列方法
1-9-4 文氏圖系列方法
1-9-5 Zip 系列方法
1-9-6 Associate 系列方法
1-9-7 Flat 系列方法
1-9-8 Scan 系列方法
1-9-9 回顧
1-10 集合聚合的方法
1-10-1 總覽圖
1-10-2 Calculating 系列方法
1-10-3 Join 系列方法
1-10-4 Reduce 系列方法
1-10-4 Fold 系列方法
1-10-5 With-grouping 系列方法
1-10-6 回顧
1-11 集合轉型的方法
1-11-1 總覽圖
1-11-2 toArray 系列方法
1-11-3 toCollection 系列方法
1-11-4 toSortedCollection 系列方法
1-11-5 toOthers 系列方法
1-11-6 回顧
1-12 集合方法速查地圖

Chapter 02 心法篇
2-1 探索集合實作奧祕
2-1-1 為什麼可以直接用函式建立集合?
2-1-2 為什麼集合可以儲存各種型別的元素?
2-1-3 集合方法為什麼可以讓外部決定行為?
2-1-4 為什麼集合方法不是宣告在類別裡?
2-1-5 為什麼同一個方法可以有兩種使用方式?
2-1-6 為什麼集合方法可以串接在一起?
2-1-7 為什麼集合可以傳入 for 迴圈裡?
2-1-8 為什麼可以用 println() 印出 List、Set、Map 的元素?
2-1-9 宣告 Map 時,配對 Key/Value 的 to 是關鍵字嗎?
2-1-10 為什麼 List 及 Map 的 Key 可以解構成變數回傳?
2-1-11 回顧:標準函式庫 = Kotlin 語法寶庫
2-2 集合方法變化形釋疑
2-2-1 時態慣例
2-2-2 To
2-2-3 By
2-2-4 With
2-2-5 Of
2-2-6 At
2-2-7 Or
2-2-8 條件判斷相關(If、While)
2-2-9 常用英文字
2-2-10 排列組合
2-2-11 回顧
2-3 與集合併用的組合技
2-3-1 以 Range 產生指定範圍
2-3-2 把字串轉成集合使用
2-3-3 提升處理大量資料時的效能
2-3-4 實作 Comparable 讓類別能被排序或比較
2-3-5 將集合串接 Scope Function
2-3-6 回顧

Chapter 03 實戰篇導言
3-1 樂透選號
3-1-1 做一個發財夢
3-1-2 同理可證
3-1-3 更進一步
3-1-4 分享您的超能力
3-1-5 回顧
3-2 資料統計運算
3-2-1 微型資料科學
3-2-2 逐行印出檔案內容
3-2-3 從純文字轉型成資料類別
3-2-4 以集合方法做統計運算
3-2-5 調整輸出樣式
3-2-6 產生隨機資料集
3-2-7 回顧
3-3 萬用 Mock Server
3-3-1 當個龍的傳人
3-3-2 Mock Server 快速原型
3-3-3 設計 API 規格
3-3-4 建立 Ktor 專案
3-3-5 Ktor 語法簡介
3-3-6 實作 API 路徑
3-3-7 實作資料類別
3-3-8 產生多筆資料及分頁資訊
3-3-9 回傳 JSON 格式的內容
3-3-10 增加資料擬真性
3-3-11 實作分頁
3-3-12 模擬 API 回應速度
3-3-13 產生 HTTPS 網址
3-3-14 回顧

Chapter 04 結語
4-1 有意識的把集合應用在實務上
4-2 小步前進,持續改善
4-3 條條大路通羅馬
4-4 關於效能與效率的反思
4-5 要樂在其中
4-6 延伸學習資源

Chapter 05 附錄
5-1 安裝 IntelliJ IDEA 開發工具
5-1-1 IntelliJ IDEA 簡介
5-1-2 安裝 JetBrains Toolbox App
5-1-3 安裝 IntelliJ IDEA
5-2 在 Unix-like 作業系統上安裝/管理多個版本的 JDK
5-2-1 SDKMAN 簡介
5-2-2 安裝 SDKMAN
5-2-3 安裝多版本 JDK
5-2-4 切換及設定使用的 JDK 版本
5-2-5 其他常用 SDKMAN 指令
5-3 在 Windows 作業系統上安裝/管理多個版本的 JDK
5-3-1 Scoop 簡介
5-3-2 安裝 Scoop
5-3-3 安裝多版本 JDK
5-3-4 切換及設定使用的 JDK 版本
5-3-5 其他常用 SDKMAN 指令
5-4 在 IntelliJ IDEA 指定使用的 JDK 版本
5-4-1 在專案建立時指定使用的 JDK 版本
5-4-2 調整專案使用的 JDK 版本
5-4-3 指定 Gradle 使用的 JVM 來源
5-4-4 使用 Docker 測試不同版本的 JDK
5-5 更新 IntelliJ IDEA 的 Kotlin 外掛程式
5-5-1 更新 Kotlin 外掛程式
5-5-2 設定 Kotlin 外掛程式的更新頻道
5-5-3 手動安裝及更新 Kotlin SDK
5-6 詞彙對照表
5-7 參考資料


作者介紹


范聖佑 (Shengyou Fan) 著

Web 開發出身,歷任軟體公司設計師、工程師、研究員,擅長以跨領域思維協助團隊做技術導入及建立技術品牌。平時醉心於技術研究,力求將複雜的技術名詞用通俗易懂的方式讓新手也能吸收。目前在 JetBrains 擔任技術傳教士,負責推廣 JetBrains IDE 及 Kotlin 程式語言。

工作之餘也熱情經營技術社群,自 2014 年以來陸續建立 PHP 也有 Day、Laravel 台灣、LaravelConf Taiwan、Laravel 道場等技術社群、研討會及顧問服務。近年來專注在以 Kotlin 為核心的相關技術,從2020 年起舉辦 Kotlin 讀書會、練功場、技術小聚並每年號召夥伴一起參與 iT 邦幫忙鐵人賽,本書原型《新手也能懂的 Kotlin Collection 賞玩門道》即為作者於第 12 屆鐵人賽的佳作得獎作品。




相關書籍

PowerShell Deep Dives (Paperback)

作者 Jeffery Hicks Richard Siddaway Oisin Grehan Aleksandar Nikolic

2022-06-30

TCP/IP 通訊協定-從 Windows Server 2008 深入 TCP/IP 的核心世界

作者 李蔚澤

2022-06-30

Groovy 程序設計 (Programming Groovy 2: Dynamic Productivity for the Java Developer)

作者 Venkat Subramaniam

2022-06-30